home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 001-025 / 003 / roff / tpr.h < prev    next >
C/C++ Source or Header  |  1995-03-13  |  3KB  |  165 lines

  1. #include    <stdio.h>
  2. #include    <ctype.h>
  3.  
  4. /*
  5.  * A bug in the current Lattice C compiler for the AMIGA prevents enums from
  6.  * working properly.
  7.  */
  8. #ifdef AMIGA
  9. #  define NOENUMS    /* Define NOENUMS to not use enumerations */
  10. #endif
  11.  
  12. #define    min(a,b)    (a<b?a:b)
  13. #define    max(a,b)    (a>b?a:b)
  14. #define    skipbl(p)    {while(*p == ' ' || *p == '\t')p++;}
  15. #define    skipnbl(p)    {while(*p != ' ' && *p != '\t' && *p != '\n')p++;}
  16. #define    CHARNULL    ((char *)NULL)
  17. #define    NO        0
  18. #define    YES        1
  19. #define    COMMAND        '.'
  20. #define    PAGENUM        '%'
  21. #define    HUGE        10000
  22. #define    MAXIN        256
  23. #define    MAXOUT        256
  24. #define    MAXFN        64    /* length of included filename */
  25. #define    MAXCHARS    14
  26. #define    MAXMAC        50
  27. #define    MAXPB        50
  28. #define    MAXTABS        20
  29. #define    PAGLEN        66
  30. #define    PAPERSIZE    65
  31. #define    M1DEF        3
  32. #define    M2DEF        1
  33. #define    M3DEF        1
  34. #define    M4DEF        3
  35. #define    PAGEWIDTH    60
  36. #define    ARABIC        0
  37. #define    ROMAN        1
  38. #define    ENGLISH        2
  39.  
  40. struct linelink{
  41.     char *lineptr;
  42.     struct linelink *lastline;
  43.     };
  44. struct    macro{
  45.     char macnam[3];
  46.     struct linelink *macend;
  47.     };
  48. struct    envir{
  49.     short plval;
  50.     short m1val;
  51.     short m2val;
  52.     short m3val;
  53.     short m4val;
  54.     short bottom;
  55.     char *evenhdr,*oddhdr;
  56.     char *evenftr,*oddftr;
  57.     char comchr;
  58.     char tabchr;
  59.     char ubchr;
  60.     short fill;
  61.     short adjust;
  62.     short numtyp;
  63.     short lsval;
  64.     short llval;
  65.     short inval;
  66.     short tival;
  67.     short poval;
  68.     short ceval;
  69.     short ulval;
  70.     short bdval;
  71.     short litval;
  72.     short blval;
  73.     short skpval;
  74.     short tabpos[MAXTABS];
  75.     struct envir *lastenv;
  76.     };
  77. struct cmdents{
  78.     char cmdname[3];
  79.     short notredefd;
  80.     };
  81. #ifdef NOENUMS
  82. #  define ADJ        00
  83. #  define ARA        01
  84. #  define BLD        02
  85. #  define BLN        03
  86. #  define BPG        04
  87. #  define BRE        05
  88. #  define CMC        06
  89. #  define CEN        07
  90. #  define DFN        08
  91. #  define EFO        09
  92. #  define ENG        10
  93. #  define EHD        11
  94. #  define FIL        12
  95. #  define FOT        13
  96. #  define HED        14
  97. #  define IND        15
  98. #  define INX        16
  99. #  define LIT        17
  100. #  define LNL        18
  101. #  define LNS        19
  102. #  define M1        20
  103. #  define M2        21
  104. #  define M3        22
  105. #  define M4        23
  106. #  define NAD        24
  107. #  define NED        25
  108. #  define NFL        26
  109. #  define OFO        27
  110. #  define OHD        28
  111. #  define PGL        29
  112. #  define POF        30
  113. #  define PGT        31
  114. #  define RNV        32
  115. #  define REF        33
  116. #  define ROM        34
  117. #  define RPG        35
  118. #  define SNV        36
  119. #  define SKP        37
  120. #  define SOU        38
  121. #  define SPA        39
  122. #  define TCL        40
  123. #  define TCH        41
  124. #  define TMI        42
  125. #  define UBC        43
  126. #  define UDL        44
  127. #  define MAC        45
  128. #  define UNKNOWN    46
  129. #  define CMDNUM int
  130. #else
  131. #  define CMDNUM enum cmdnum
  132. CMDNUM        {ADJ, ARA, BLD, BLN, BPG, BRE, CMC, CEN, DFN, EFO, ENG, EHD,
  133.         FIL, FOT, HED, IND, INX, LIT, LNL, LNS, M1, M2, M3, M4, NAD,
  134.         NED, NFL, OFO, OHD, PGL, POF, PGT, RNV, REF, ROM, RPG, SNV, SKP,
  135.         SOU, SPA, TCL, TCH, TMI, UBC, UDL, MAC, UNKNOWN};
  136. #endif
  137. extern    struct macro macros[MAXMAC];
  138. extern    short maccnt;
  139. extern    char *pbptr[MAXMAC];
  140. extern    short pblev;
  141. extern    char outbuf[MAXOUT];
  142. extern    char *outp;
  143. extern    short outw;
  144. extern    short outwds;
  145. extern    short pages;
  146. extern    short pausecount;
  147. extern    short curpag;
  148. extern    short newpag;
  149. extern    short lineno;
  150. extern    short peekno;
  151. extern    short indline;
  152. extern    short respage;
  153. extern    char trapmac[];
  154. extern    char blnkhdr[];
  155. extern    struct envir env;
  156. extern    struct envir *curenv;
  157. extern    struct cmdents builtins[];
  158. extern    short echodir;
  159. extern    char *progname;
  160. extern    char *filename;
  161. extern    short fileline;
  162. extern    short ttyfd;
  163. extern    FILE *indfp;
  164. extern    char *nomem;
  165.